/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this jdbc file, choose Tools | Templates
 * and open the jdbc in the editor.
 */
package com.ptrsystem.siatd.dao.implementacion;

import com.ptrsystem.siatd.beans.Usuario;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author uotu
 */
@Repository
public class mantenimientoUsuarioImplement implements com.ptrsystem.siatd.dao.interfaces.mantenimientoUsuarioInterface {

    @Autowired
    private DataSource dataSource;

    @Override
    @Transactional
    public boolean getRegistraUsuario(Usuario usuario) {
        boolean rt = false;
        JdbcTemplate jdbc = new JdbcTemplate(this.dataSource);
        int rs = jdbc.update("insert into TD_REG_USUARIO values(?,?,?,?,?,?,?,?,?,?,?)", usuario.getDNIUsuario(),
                usuario.getPriApellido(),
                usuario.getSegApellido(),
                usuario.getPreNom(),
                usuario.getDireccion(),
                usuario.getGenero(),
                usuario.getEmail(),
                usuario.getFecNac(),
                usuario.getTelefono(),
                usuario.getCodUbigeo(),
                usuario.getCodEstUsuario());
        if (rs > 0) {
            rt = true;
        }
        return rt;
    }

    @Override
    public List<Usuario> getListaUsuario(String Dni, String PApe, String SApe, String PNom) {
        JdbcTemplate jdbc = new JdbcTemplate(this.dataSource);
        List<Usuario> lista = jdbc.query("select * from TD_REG_USUARIO where DNI_USUARIO like(?) and (PRIM_APE_USU like(?) and SEGUN_APE_USU like(?) and PRE_NOM_USU like(?))",
                new Object[]{Dni, PApe, SApe, PNom}, new rowMapper());
        return lista;
    }

    private class rowMapper implements RowMapper<Usuario> {

        @Override
        public Usuario mapRow(ResultSet rs, int i) throws SQLException {
            Usuario usu = new Usuario(rs.getString(1),
                    rs.getString(2),
                    rs.getString(3),
                    rs.getString(4),
                    rs.getString(5),
                    rs.getString(6),
                    rs.getString(7),
                    rs.getString(8),
                    rs.getString(9),
                    rs.getString(10),
                    rs.getString(11));
            return usu;
        }

    }

}
